A generalization of insertion sort that sorts elements far apart first, progressively reducing the gap.